#ifndef __select_h__
#define __select_h__

/* Forward Declarations */

struct ENUMDESC;

/* header files for imported files */
#include "csite.h"

/* header files for imported files */
#include "collect.h"

#ifndef __IHTMLSelectElement_FWD_DEFINED__
#define __IHTMLSelectElement_FWD_DEFINED__
typedef interface IHTMLSelectElement IHTMLSelectElement;
#endif     /* __IHTMLSelectElement_FWD_DEFINED__ */

#ifndef __IHTMLSelectElement2_FWD_DEFINED__
#define __IHTMLSelectElement2_FWD_DEFINED__
typedef interface IHTMLSelectElement2 IHTMLSelectElement2;
#endif     /* __IHTMLSelectElement2_FWD_DEFINED__ */

#ifndef __IHTMLSelectElement4_FWD_DEFINED__
#define __IHTMLSelectElement4_FWD_DEFINED__
typedef interface IHTMLSelectElement4 IHTMLSelectElement4;
#endif     /* __IHTMLSelectElement4_FWD_DEFINED__ */
typedef enum _htmlSelectType
{
    htmlSelectTypeSelectOne = 1,
    htmlSelectTypeSelectMultiple = 2,
    htmlSelectType_Max = 2147483647L
} htmlSelectType;


EXTERN_C const ENUMDESC s_enumdeschtmlSelectType;


#ifndef __IHTMLSelectElement_INTERFACE_DEFINED__

#define __IHTMLSelectElement_INTERFACE_DEFINED__

EXTERN_C const IID IID_IHTMLSelectElement;


MIDL_INTERFACE("3050f244-98b5-11cf-bb82-00aa00bdce0b")
IHTMLSelectElement : public IDispatch
{
public:
    virtual HRESULT STDMETHODCALLTYPE put_size(
         /* [in] */ long v) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_size(
         /* [out] */ long * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_multiple(
         /* [in] */ VARIANT_BOOL v) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_multiple(
         /* [out] */ VARIANT_BOOL * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_name(
         /* [in] */ BSTR v) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_name(
         /* [out] */ BSTR * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_options(
         /* [out] */ IDispatch* * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_onchange(
         /* [in] */ VARIANT v) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_onchange(
         /* [out] */ VARIANT * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_selectedIndex(
         /* [in] */ long v) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_selectedIndex(
         /* [out] */ long * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_type(
         /* [out] */ BSTR * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_value(
         /* [in] */ BSTR v) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_value(
         /* [out] */ BSTR * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_disabled(
         /* [in] */ VARIANT_BOOL v) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_disabled(
         /* [out] */ VARIANT_BOOL * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_form(
         /* [out] */ IHTMLFormElement* * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE add(
            /* [in] */ IHTMLElement* element,/* [in] */ VARIANT before) = 0;

    virtual HRESULT STDMETHODCALLTYPE remove(
            /* [in] */ long index) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_length(
         /* [in] */ long v) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_length(
         /* [out] */ long * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get__newEnum(
         /* [out] */ IUnknown* * p) = 0;

    virtual HRESULT STDMETHODCALLTYPE item(
            /* [in] */ VARIANT name,/* [in] */ VARIANT index,/* [out] */ IDispatch** pdisp) = 0;

    virtual HRESULT STDMETHODCALLTYPE tags(
            /* [in] */ VARIANT tagName,/* [out] */ IDispatch** pdisp) = 0;

};

#endif     /* __IHTMLSelectElement_INTERFACE_DEFINED__ */


#ifndef __IHTMLSelectElement2_INTERFACE_DEFINED__

#define __IHTMLSelectElement2_INTERFACE_DEFINED__

EXTERN_C const IID IID_IHTMLSelectElement2;


MIDL_INTERFACE("3050f5ed-98b5-11cf-bb82-00aa00bdce0b")
IHTMLSelectElement2 : public IDispatch
{
public:
    virtual HRESULT STDMETHODCALLTYPE urns(
            /* [in] */ VARIANT urn,/* [out] */ IDispatch** pdisp) = 0;

};

#endif     /* __IHTMLSelectElement2_INTERFACE_DEFINED__ */


#ifndef __IHTMLSelectElement4_INTERFACE_DEFINED__

#define __IHTMLSelectElement4_INTERFACE_DEFINED__

EXTERN_C const IID IID_IHTMLSelectElement4;


MIDL_INTERFACE("3050f838-98b5-11cf-bb82-00aa00bdce0b")
IHTMLSelectElement4 : public IDispatch
{
public:
    virtual HRESULT STDMETHODCALLTYPE namedItem(
            /* [in] */ BSTR name,/* [out] */ IDispatch** pdisp) = 0;

};

#endif     /* __IHTMLSelectElement4_INTERFACE_DEFINED__ */



EXTERN_C const GUID GUID_HTMLSelectElement;



EXTERN_C const GUID DIID_DispHTMLSelectElement;


#ifndef _CSelectElement_PROPDESCS_
EXTERN_C const PROPERTYDESC_NUMPROP s_propdescCSelectElementsize;
EXTERN_C const PROPERTYDESC_NUMPROP s_propdescCSelectElementmultiple;
EXTERN_C const PROPERTYDESC_NUMPROP s_propdescCSelectElementalign;
EXTERN_C const PROPERTYDESC_CSTR_GETSET s_propdescCSelectElementname;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCSelectElementoptions;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCSelectElementselectedIndex;
EXTERN_C const PROPERTYDESC_NUMPROP_ABSTRACT s_propdescCSelectElementtype;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCSelectElementvalue;
EXTERN_C const PROPERTYDESC_BASIC s_propdescCSelectElementonchange;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCSelectElementadd;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCSelectElementremove;
EXTERN_C const PROPERTYDESC_NUMPROP s_propdescCSelectElementdisabled;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCSelectElementlength;
EXTERN_C const PROPERTYDESC_BASIC_ABSTRACT s_propdescCSelectElement_newEnum;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCSelectElementtags;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCSelectElementitem;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCSelectElementurns;
EXTERN_C const PROPERTYDESC_METHOD s_methdescCSelectElementnamedItem;

#endif


#endif /*__select_h__*/

